Recently, as a technique for processing many sets of data that are collected every moment from various targets in a parallel manner, CEP (complex event processing) has been known. In the complex event processing, an event is detected from received data, and processing relating to the detected event is performed. Although there is when the complex event process is called ESP (event stream processing), here, the complex event processing together with the ESP will be referred to as CEP.
In a CEP system that performs the complex event processing, there is a case where a large amount of received data is temporarily processed, and, in such a case, the processing load increases, and the processing performance may decrease. In addition, since the CEP system is a system that processes data in real time, the CEP system is expected to be always running, and is not allowed to be stopped.
Thus, in the CEP system, by using a system technique, in which resources can be flexibly allocated, used for a cloud or the like, the processing is divided into a plurality of servers or virtual machines (VMs) in accordance with a variation in the processing load. For example, a transaction requesting sentence called a query or data accompanied with a query that is arranged at a server or a virtual machine, which has a high processing load, is moved to another server or another virtual machine as a processing element, whereby the processing is divided.
However, in a CEP system, there is a possibility that the data order changes in a case where the movement of a processing element occurs. For example, it is assumed that a data transmission source server is A, a movement source server of a processing element is B, and a movement destination server of the processing element is C. Here, a case will be considered in which the transmission source server A transmits data to the movement source server B, and a processing element is moved from the movement source server B to the movement destination server C. Data transmitted from the transmission source server A to the movement source server B at timing when the processing element is moved from the movement source server B to the movement destination server C arrives at the movement source server B. Since the processing element has moved to the movement destination server C, the movement source server B transmits the arrived data to the movement destination server C. When the movement of the processing element has been completed, the movement destination server C notifies the transmission source server A of movement completion of the processing element. After the notification of the movement completion, the transmission source server A transmits data directly to the movement destination server C. In such a case, there is a possibility that the data that has been directly transmitted from the transmission source server A to the movement destination server C arrives at the movement destination server C before the data transmitted from the transmission source server A to the movement destination server C through the movement source server B.
When the data order changes as above, there is a case where a represented meaning changes in accordance with the data order. For example, a case will be considered in which a security system, in which a door sensor detecting the unlocking of a front door of a house using a key and a motion sensor detecting a person present indoor are arranged, and data transmitted from the door sensor and the motion sensor is monitored, is realized by a CEP system. In such a case, when the order of data of the detection of opening or closing of the front door using a key, which is acquired by the door sensor, and data of the detection of an indoor motion, which is acquired by the motion sensor, changes, the meaning changes. For example, a case where an object is detected indoor after the detection of unlocking the front door using a key can be regarded as owner's return to the house. On the other hand, a case where the unlocking the front door using a key is detected after detection of an indoor object can be regarded as a thief's flight.
Thus, a technique has been proposed in which the data order is maintained even when the movement of a processing element occurs. In this technique, for example, when a movement source server and a movement destination server of a processing element are determined, a controller that manages a CEP system transmits a movement request to the movement source server and the movement destination server. The movement source server sends pause requests to all the transmission sources that transmit data to the movement source server and waits for ack for the pause requests, thereby locking the transmission of data in the transmission source and buffering data of the processing element as a movement target in the transmission source. When the movement source server receives ack from all the transmission sources, there is no data that is in the process of transmission. The movement source server processes data until ack is received from all the transmission sources. Then, when ack is received from all the transmission sources, the movement source server starts the movement of the processing element. After the movement of the processing element is completed, the movement destination server transmits a restart request to all the transmission sources. When the restart request is received, the transmission source changes the transmission destination of the data to the movement destination server by changing a routing table, restarts the transmission of data, and transmits the buffered data to the movement destination server.
Patent Document 1: Japanese Laid-open Patent Publication No. 2011-039820
Non patent Document 1: Mehul A. Shah, Joseph M. Hellerstein, Sirish Chandrasekaran and Michael J. Franklin, “Flux: An Adaptive Partitioning Operator for Continuous Query Systems”, ICDE, 2003
However, according to the related arts, when the processing element is moved, the movement source server stops the transmission of data in the transmission source by transmitting a pause request to all the transmission sources. Therefore, according to the related arts, there is overhead of stopping data processing for every movement of the processing element. More specifically, when many processing elements are moved, data processing is stopped every time when each processing element is moved, and accordingly, the overhead increases.